home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
- #include <stdlib.h>
- #include "dbox.h"
- #include "global.h"
- #include "timer.h"
- #include "mbuf.h"
- #include "netuser.h"
- #include "internet.h"
- #include "tcp.h"
- #include "cmdparse.h"
- #include "misc.h"
-
- #define TCP_OK 0
- #define TCP_IRTT 1
- #define TCP_MSS 2
- #define TCP_WINDOW 3
-
- static int doirtt(int, char **);
- static int domss(int, char **);
- static int dowindow(int, char **);
-
- /* TCP connection states */
- char *tcpstates[] = {
- "Closed",
- "Listen",
- "SYN sent",
- "SYN received",
- "Established",
- "FIN wait 1",
- "FIN wait 2",
- "Close wait",
- "Closing",
- "Last ACK",
- "Time wait"
- };
-
- /* TCP closing reasons */
- char *reasons[] = {
- "Normal",
- "Reset",
- "Timeout",
- "ICMP"
- };
- /* TCP subcommand table */
- struct cmds tcpcmds[] = {
- "irtt", doirtt, 0, NULLCHAR, NULLCHAR,
- "mss", domss, 0, NULLCHAR, NULLCHAR,
- "window", dowindow, 0, NULLCHAR, NULLCHAR,
- NULLCHAR, NULLFP, 0, "tcp subcommands: irtt mss window", NULLCHAR,
- };
- int dotcp(int argc, char **argv)
- {
- return subcmd(tcpcmds,argc,argv);
- }
- /* Set initial round trip time for new connections */
- static int doirtt(int argc, char **argv)
- {
- if (argc > 1) tcp_irtt = atoi(argv[1]);
- return 0;
- }
- /* Set default maximum segment size */
- static int domss(int argc, char **argv)
- {
- if (argc > 1) tcp_mss = atoi(argv[1]);
- return 0;
- }
- /* Set default window size */
- static int dowindow(int argc, char **argv)
- {
- if (argc > 1) tcp_window = atoi(argv[1]);
- return 0;
- }
- void tcp_parms(void)
- {
- dbox d;
-
- if ((d = dbox_new("TCP_Parms")) == NULL)
- return;
-
- dbox_setnumeric(d, TCP_IRTT, tcp_irtt);
- dbox_setnumeric(d, TCP_MSS, tcp_mss);
- dbox_setnumeric(d, TCP_WINDOW, tcp_window);
-
- dbox_show(d);
-
- if (dbox_fillin(d) == TCP_OK)
- {
- tcp_irtt = dbox_getnumeric(d, TCP_IRTT);
- tcp_mss = dbox_getnumeric(d, TCP_MSS);
- tcp_window = dbox_getnumeric(d, TCP_WINDOW);
- }
-
- dbox_dispose(&d);
- }
-